From 34a955823630096f5b01c2b01d51c1ea59d22763 Mon Sep 17 00:00:00 2001
From: Zequan Wu <zequanwu@google.com>
Date: Tue, 20 Jul 2021 14:13:50 +0000
Subject: [PATCH] Use -ffile-compilation-dir= instead of
 -fdebug-compilation-dir=

Bug: 1010267
Change-Id: If2b4ead8535a76490eb466a38e3d8fed6ea91079
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2770738
Auto-Submit: Zequan Wu <zequanwu@google.com>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#903456}
---
 build/config/compiler/BUILD.gn     | 18 ++++++++++++------
 build/config/compiler/compiler.gni |  7 ++-----
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index ede07d111c..6db16c1cdd 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1216,12 +1216,18 @@ config("compiler_deterministic") {
     # different build directory like "out/feature_a" and "out/feature_b" if
     # we build same files with same compile flag.
     # Other paths are already given in relative, no need to normalize them.
-    cflags += [
-      "-Xclang",
-      "-fdebug-compilation-dir",
-      "-Xclang",
-      ".",
-    ]
+    if (is_nacl) {
+      cflags += [
+        "-Xclang",
+        "-fdebug-compilation-dir",
+        "-Xclang",
+        ".",
+      ]
+    } else {
+      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+      # and -fcoverage-compilation-dir=.
+      cflags += [ "-ffile-compilation-dir=." ]
+    }
     if (!is_win) {
       # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
       asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index 8c259c360a..642319b4f4 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -225,11 +225,8 @@ declare_args() {
 # deterministic builds to reduce compile times, so this is less relevant for
 # official builders.
 strip_absolute_paths_from_debug_symbols_default =
-    # TODO(crbug.com/1010267): remove '!use_clang_coverage', coverage build has
-    # dependency to absolute path of source files.
-    !use_clang_coverage &&
-    (is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
-     is_chromeos || (is_apple && !enable_dsyms))
+    is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
+    is_chromeos || (is_apple && !enable_dsyms)
 
 # If the platform uses stripped absolute paths by default, then we don't expose
 # it as a configuration option. If this is causing problems, please file a bug.
